//
//  CantripPluginManager.h
//  Cantrip
//
//  Created by James Callender on Sun Jun 06 2004.
//  Copyright (c) 2004 James Callender. All rights reserved.
//

#import <Cocoa/Cocoa.h>
#import <CantripSDK/CantripSDK.h>

@interface CantripPluginManager : NSObject {
    NSMutableArray *pluginClasses;
    NSMutableArray *pluginModules;
		
    NSMutableArray *interfaceEventModules;
    NSMutableArray *connectionEventModules;
    NSMutableArray *dirtyServerStreamModules;
    NSMutableArray *attributedServerStreamModules;
}

+ (CantripPluginManager *)sharedPluginManager;

- (NSArray *)pluginClasses;
- (NSArray *)pluginModules;
- (NSArray *)interfaceEventModules;
- (NSArray *)connectionEventModules;
- (NSArray *)dirtyServerStreamModules;
- (NSArray *)attributedServerStreamModules;

- (void)loadAllBundles;
- (void)loadBundleAtPath:(NSString *)pluginPath;
- (void)registerPlugin:(id)plugin forService:(CantripPluginService)type 
	      priority:(int)priority;

- (void)makePluginsPerformSelector:(SEL)selector withObject:(id)object;

@end
